8fd99fb3fc8cbc2e7c37008624b80901a0914527,src/main/java/act/controller/Controller.java,Util,inferResult,#HandlerMethodMetaInfo#Object#ActionContext#boolean#,671

Before Change


         * @param context the action context
         * @return the rendered result
         */
        public static Result inferResult(HandlerMethodMetaInfo meta, Object v, ActionContext context, boolean hasTemplate) {
            if (null == v && !hasTemplate) {
                return null;
            } else if (v instanceof Result) {
                return (Result) v;
            } else if (v instanceof String) {
                if (hasTemplate) {
                    return inferToTemplate(v, context);
                }
                return inferResult((String) v, context);
            } else if (v instanceof InputStream) {
                return inferResult((InputStream) v, context);
            } else if (v instanceof File) {
                return inferResult((File) v, context);
            } else if (v instanceof ISObject) {
                return inferResult((ISObject) v, context);
            } else if (v instanceof Map) {
                if (hasTemplate) {
                    return inferToTemplate((Map) v, context);
                }
                return RenderJSON.of(v);
            } else if (hasTemplate && v instanceof Object[]) {
                throw E.tbd("Render template with array");
            } else {
                H.Request req = context.req();
                if (Act.isProd() && v instanceof Versioned && req.method().safe()) {
                    String version = ((Versioned) v)._version();
                    if (req.etagMatches(version)) {
                        return NotModified.get();
                    } else {
                        context.resp().etag(version);

After Change


                return (Result)v;
            }
            final H.Request req = context.req();
            final H.Status status = req.method() == H.Method.POST ? H.Status.CREATED : H.Status.OK;
            if (Act.isProd() && v instanceof Versioned && req.method().safe()) {
                processEtag(meta, v, context, req);
            }